package org.generic.customgeneric.demo03;

/**
 * 自定义泛型方法
 * @author CSY
 * @date 2025 - 03 - 18
 */
public class CustomMethodGeneric {
    public static void main(String[] args) {
        Car c = new Car();

        //当调用方法时，传入参数，编译器就会确定类型
        c.fly("s",1);
    }
}
//泛型方法，可以定义在普通类中，也可以定义在泛型类中
class Car{//普通类
    public void run(){

    }

    /**
     * 泛型方法
     * @param t 参数t
     * @param r 参数r
     * @param <T> 泛型T
     * @param <R> 泛型R
     */
    public<T,R> void fly(T t,R r){

    }
}

class Fish<T,R>{
    public void run(){

    }

    public<U,M> void eat(U u,M m){//泛型方法 - 应该与泛型类的泛型区分开来

    }

    //这不是一个泛型方法，而是使用了类声明的泛型
    public void hi(T t){

    }
}